Ajouter du contenu RSS dans un Listview (TListView).
Cet exemple utilise la librairie synapse
uses classes, xmldoc, XMLIntf, ComCtrls;
procedure TThreadSearchEngine.AddItemToListView;
var
StartItemNode : IXMLNode;
ANode : IXMLNode;
STitle, sDesc, sLink : WideString;
response:TStringList;
stream:TMemoryStream;
begin
XMLDoc:=TXMLDocument.Create(LV); //LV est la listview
response:=TStringList.create;
stream:=TMemoryStream.Create;
try
httpgettext(starturl,response); //synapse
response.savetostream(stream); //peut etre simplifie
stream.position:=0;
XMLDoc.LoadFromStream(stream);
finally
response.free;
stream.free;
end;
//XMLDoc.FileName := starturl;
XMLDoc.Active:=True;
StartItemNode := XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item') ;
LV.Items.BeginUpdate;
ANode := StartItemNode;
while ANode <> nil do
begin
STitle := ANode.ChildNodes['title'].Text;
sLink := ANode.ChildNodes['link'].Text;
sDesc := ANode.ChildNodes['description'].Text;
//add to list view
with LV.Items.Add do
begin
Caption := STitle;
SubItems.Add(sLink) ;
SubItems.Add(sDesc)
end;
ANode := ANode.NextSibling;
end;
LV.Items.endUpdate;
end;